//
//  MoteurController.m
//  Metronome
//
//  Created by Thomas Dupont on 23/09/09.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//

#import "MoteurController.h"
#import "MoteurProtocol.h"
#import "Materiel.h"
#import "MetronomeKit.h"

@implementation MoteurController
@synthesize monMoteur;
@synthesize commandeLED1;
@synthesize commandeLED2;

#pragma mark -
#pragma mark ControllerProtocol
- (void)marquerTemps
{
	[[[Materiel sharedMateriel] afficheur] allumerLED:1];
	[[[Materiel sharedMateriel] horloge] activerCommande:commandeLED1 apresDelai:0.1];
	//[[[Materiel sharedMateriel] emetteurSonore] emettreClic];
}

- (void)marquerMesure
{
	[[[Materiel sharedMateriel] afficheur] allumerLED:2];
	[[[Materiel sharedMateriel] horloge] activerCommande:commandeLED2 apresDelai:0.1];
	[[[Materiel sharedMateriel] emetteurSonore] emettreClic];
}

- (void)boutonStartPresse
{
	[monMoteur restart];
	[monMoteur setEtatMarche:YES];
}
- (void)boutonStopPresse
{
	[monMoteur setEtatMarche:NO];
}
- (void)boutonIncPresse
{
	[monMoteur setNbTempsParMesure:[monMoteur nbTempsParMesure]+1];
	[[[Materiel sharedMateriel] afficheur] afficherMesure:[monMoteur nbTempsParMesure]];
}
- (void)boutonDecPresse
{
	[monMoteur setNbTempsParMesure:[monMoteur nbTempsParMesure]-1];
	[[[Materiel sharedMateriel] afficheur] afficherMesure:[monMoteur nbTempsParMesure]];
}

- (void)changementMolette:(float)laValeur
{
	NSUInteger val = (int) ceil(laValeur*kMaxTempo);
	[monMoteur setTempo:val];
	[[[Materiel sharedMateriel] afficheur] afficherTempo:[monMoteur tempo]];
}

#pragma mark -
#pragma mark Memory Management
- (void)dealloc
{
	[(id)monMoteur release];
	[(id)commandeLED1 release];
	[(id)commandeLED2 release];
	[super dealloc];
}

@end
